# 写代码之前思路一定要清晰
# 1、引入图片，dog.
# 2、设计一个LOGO图片.
# 3、规划一下你的logo希望放在哪块位置.在添加的位置变成黑色
# 4、利用add方法，把logo和图片叠加在一起


import cv2
import numpy as np

# 导入图片
dog = cv2.imread("./images/dog.jpg")

# 创建logo
logo = np.zeros((200, 200, 3), np.uint8)

# 绘制logo
logo[20:120, 20:120] = [0, 0, 255]
logo[80:180, 80:180] = [0, 255, 0]

# 掩码
mask = np.zeros((200, 200), np.uint8)
mask[20:120, 20:120] = 255
mask[80:180, 80:180] = 255
# cv2.imshow('mask', mask)
m = cv2.bitwise_not(mask)
# cv2.imshow('m', m)

# 选择dog添加logo的位置
roi = dog[0:200, 0:200]

# roi与m进行与操作，先roi和roi做与运算，然后结果在和mask做与运算，如果与的结果是True，那么返回原图的像素，否则返回0
tmp = cv2.bitwise_and(roi, roi, mask=m)

# cv2.imshow('tmp', tmp)

# 合并
dst = cv2.add(tmp, logo)
# cv2.imshow('dst', dst)

# 在dog上还原
dog[:200, :200] = dst

cv2.imshow('logo', logo)
cv2.imshow('dog', dog)

cv2.waitKey(0)
cv2.destroyAllWindows()
